import Observer from './observer' 
// 创建observe函数， 只为对象服务
export default function observe (value) {
  // 如果value不是对象， 直接返回, value是要被侦测的对象
  if (typeof value !== 'object') return;
  // 定义ob, 存储观察者实例，用于管理依赖和更新逻辑
  var ob;
  //避免重复处理 : 检查对象是否已有 __ob__ 属性（标记是否已被响应式处理）
  if (typeof value.__ob__ !== 'undefined') {  // __ob__存储在实例Observer上
    ob = value.__ob__  // __ob__指向的就是Observer的实例
  } else {
    // 创建观察者：如果没有 __ob__ 属性，则调用 Observer 构造函数（未展示）创建一个新的观察者实例
    ob = new Observer(value);
  }
  return ob;
}